package com.ljm.security.api;

import com.ljm.common.dto.UserInfoDto;
import com.ljm.security.dto.SecurityResRule;
import com.ljm.security.dto.SecurityUserDetail;

import java.util.List;
import java.util.Set;

/**
 * @author: ChenHuaMing
 * @Date: 2020/6/11 11:22
 * @Description: 鉴权接口
 */
public interface SecurityApi {
    /**
     * 根据账号查询用户信息
     * @param userName 账号
     * @return 用户信息
     */
    SecurityUserDetail getUser(String userName);

    /**
     * 查询用户信息
     * @param userName 账号
     * @return 用户信息
     */
    UserInfoDto getUserInfo(String userName);

    /**
     * 获取资源访问规则
     * @param url
     * @return
     */
    SecurityResRule getResRule(String url);

    /**
     * 获取用户角色
     * @param userName 账号
     * @return 角色信息
     */
    default Set<String> getRole(String userName){
        return null;
    }

    /**
     * 获取用户权限
     * @param userName 账号
     * @return 权限信息
     */
    default Set<String> getPermission(String userName){
        return null;
    }

    /**
     * 获取用户权限
     * @param userName 账号
     * @return 权限信息
     */
    default Set<String> getPermissionForFront(String userName){
        return null;
    }
}
